home *** CD-ROM | disk | FTP | other *** search
- Le 21 Juin 1991
-
-
-
-
-
-
-
-
-
- Term II
-
- version 1.1
-
- (c) 1990,1991 - Eric GONTIER
-
- SCRIPTS.doc
-
-
-
-
-
-
-
-
-
-
-
- INTRODUCTION :
-
- Toutes les commandes décrite dans COMMANDES.doc sont
- utilisables depuis ARexx et permettent déjà des scripts pour
- faire des automates de connection. C'est assez facile.
- Depuis un programme Rexx on fixe le port à utiliser (address
- TERM), puis on envoie les commandes normalement. Voici un
- exemple :
-
-
- /* Exemple, émission automatique d'un fichier */
- /* en Xmodem 1K CRC */
-
- address TERM
-
- xpr_open '"xprxmodem.library"'
- xpr_init '"A0,C1,K1"'
- xpr_send '"dh0:mon_dir/mon_fichier"'
-
-
- Le mécanisme des scripts est facilité par quelques commandes
- spéciales : rexx_memory_on, rexx_memory_off, rexx_delay
- rexx_wait et rexx
-
- rexx_wait timeout1 timeout2
-
- Cette commande met Term en attente de caractères avec un
- timeout (timeout1). Si Term ne reçoit rien, ARexx reprend la
- main. Si Term reçoit des caractères , ARexx ne reprend la main
- que si timeout2 s'écouler après réception du dernier caractère.
- Ceci est très intéressant, par exemple dans le cas d'une
- numérotation automatique. Ca peut prendre du temps, mais des
- que la ligne est prise, il faut que ARexx reprenne la main. Par
- exemple :
-
- serial_send '"ATDT3600\n"' /* connection transpac */
-
- /* On admet 30s sans rien recevoir */
- /* Si on reçoit, Term rend la main après */
- /* 2s sans rien recevoir */
- rexx_wait 30 2
-
- Ca permet de prendre le temps d'attendre, tout en réagissant
- rapidement dès qu'on a reçu quelque chose.
-
- Il faut un moyen au script de Rexx de récupérer ce qui Term II
- a reçu. Le principe de "memory". La commande rexx_memory_on
- indique à Term de mettre en route le principe de "memory" : les
- 80 derniers caractères reçus sont mémorisés en permanence, et
- accessible dans le script rexx dans la variable memory. Cette
- variable est créée ou mise à jour automatiquement après
- l'exécution des commandes rexx_delay ou rexx_wait.
-
- Quand à la commande rexx, elle permet de démarrer un script
- ARexx directement depuis Term II (à condition que le rexx
- server soit déjà en place en tâche de fond). Exemple :
-
- rexx "quit.rexx"
-
- exécute le script quit.rexx qui est dans le répertoire courant.
-
- Les puissantes possibilités de traitement des chaines de
- caractères par le langage Rexx, ou les possibilités de parsing,
- donnent un moyen facile et puissant d'écrire des scripts.
-
- Exemple :
-
- rexx_memory_on
- serial_send '"ATDT3600\n"'
- rexx_wait 30 2
-
- /* ici, la variable memory contient */
- /* les 80 derniers caractères reçus */
-
- analyse de term.memory pour voir un des messages suivants :
-
- si CONNECTED1200
- alors, on est connecté
- on poursuit le script
-
- si BUSY
- c'était occupé. On attend 10s et on recommence
-
- si NO CARRIER
- C'est un faux numéro, ou le serveur est en panne !!
-
-
-
-
-
-
- LES EXEMPLES :
-
- Il y a déjà quelques scripts d'exemple pour montrer comment
- s'utiliser les différentes commandes. Ces scripts peuvent être
- invoqués depuis le CLI (dans ce cas, Term II doit être déjà en
- fonctionnement, comme tâche de fond par exemple) avec la
- commande rx. Par exemple :
-
- rx test_delay
-
- Ils peuvent aussi être démarrer directement depuis Term II.
- Voir pour celà le paragraphe suivant.
-
- Il y a pour l'instant trois scripts d'exemple :
-
- test_delay.rexx
- ce script permet de tester la fonction rexx_delay, et
- le mécanisme de memory
-
- test_wait.rexx
- ce script permet de tester la fonction rexx_wait
-
- download.rexx
- ce mécanisme permet un download automatique depuis
- Calva. L'utilisateur devra mettre son mot-de-passe à
- l'intérieur du script pour que l'accès puisse
- réellement se faire. Les remarques en tête du programme
- donneront à l'utilisateur les consignes nécessaires
- pour tester ce script
-
- Des scripts beaucoup plus sophistiqués peuvent être développés,
- en tirant parti du mécanisme de memory pour vérifier les
- réponses reçues et agir en conséquence.
-
-
-
-
-
-
-
-
- DEMARRER UN SCRIPT DEPUIS TERM :
-
- Enfin, il est possible de démarrer un programme Rexx _depuis_
- Term II, ce qui permet d'ajouter autant de commandes qu'on le
- veut, tout simplement en bricolant des petits scripts en Rexx.
- Le démarrage d'un de ces scripts se fait à partir de la
- commande "rexx". On peut faire des essais avec les scripts
- d'exemple :
-
- - depuis Term, faire <Amiga-Gauche><M> pour accéder au requester de
- commandes
- - essayer les commandes suivantes :
-
- rexx "download.rexx amiga/amiga/fontes/genfont.lzh ram:test"
-
- ou :
-
- rexx "test_delay.rexx"
-
-